package command;

import beans.ListeUtilisateur;
import beans.UtilisateurBean;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.*;

/**
 * @author Antonin Mozzati
 * @author Yannick Schürter
 */
public class ProfilCommand implements Command {

    @Override
    public String getCommandName() {
	return "profilCommand";
    }

    @Override
    public ActionFlow actionPerform(HttpServletRequest request) {
	String vue = "profil";
	String erreur = "erreur";

	System.out.println(this.getCommandName());
	
	// redirection
	if (request.getParameter("passold")==null)
	    return new ActionFlow(vue, vue+ ".jsp", false);

	ListeUtilisateur listeUtilisateur;
	try {
	    // On récupère la liste utilisateur du ServletContext
	    listeUtilisateur = (ListeUtilisateur) request.getServletContext().getAttribute("listeUtilisateur");
	} catch (Exception ex) {
	    Logger.getLogger(ProfilCommand.class.getName()).log(Level.SEVERE, null, ex);
	    return new ActionFlow(erreur, erreur + ".html", true);
	}
	UtilisateurBean ub = listeUtilisateur.getByID((Integer) request.getSession().getAttribute("sessionID"));


	String nom = request.getParameter("nom");
	String prenom = request.getParameter("prenom");
	String mail = request.getParameter("mail");
	String ancienpass = request.getParameter("passold");
	String pass1 = request.getParameter("pass1");
	String pass2 = request.getParameter("pass2");


	// si les formulaires sont vides
	if (nom.equals("") || prenom.equals("") || mail.equals("") || ancienpass.equals("")) {
	    request.setAttribute("erreur", "Erreur : des formulaires sont vide.");
	} else if (ancienpass.equals(ub.getMdp())) {

	    if (pass1.equals("") && pass2.equals("")) {
		listeUtilisateur.modifierUtilisateurByID(ub.getId_utilisateur(), nom, prenom, mail);
	    } else {
		if (pass1.equals(pass2)) {
		    listeUtilisateur.modifierUtilisateurByID(ub.getId_utilisateur(), nom, prenom, mail, pass1);
		} else {
		    System.out.println(ub.getMdp() + "=" + ancienpass);
		    System.out.println(pass1 + "=" + pass2);
		    request.setAttribute("erreur", "Erreur : les mots de passe ne correspondent pas");
		}
	    }
	}
	
	if (!ancienpass.equals(ub.getMdp())) {
		    request.setAttribute("erreur", "Erreur : mot de passe erroné");
	}


	return new ActionFlow(vue, vue+ ".jsp", false);
    }
}
